#include<iostream>
#include <cmath> 

using namespace std;

const double rep = 1e-6;

double check(double x, double a, double b, double c, double d) 
{
    return a * x * x * x + b * x * x + c * x + d;
}

double find(double a, double b, double c, double d, double l, double r) {
    double mid;
    while (r - l > rep) 
	{ 
        mid = (l + r) / 2;
        if (check(mid, a, b, c, d) * check(l, a, b, c, d) < 0) 
		{
            r = mid;
        } else 
		{
            l = mid;
        }
    }
    return (l + r) / 2;
}

void check(double a, double b, double c, double d) {

    for (int l = -100; l <= 100; l++) {
        double x1 = l;
        double x2 = l + 1;
        double y1 = check(x1, a, b, c, d);
        double y2 = check(x2, a, b, c, d);

        if (y1 == 0) 
		{
            printf("%.2f ", x1);
        } 
		else if (y1 * y2 < 0) 
		{
            double root = find(a, b, c, d, x1, x2);
            printf("%.2f ", root);
        }
    }
}

int main() {
    double a, b, c, d;
    cin >> a >> b >> c >> d;
    check(a, b, c, d);
    return 0;
}

